1. Field of the Invention
The present disclosure relates generally to input/output processing, and in particular, to determining the state of an I/O operation.
2. Description of Background
Input/output (I/O) operations are used to transfer data between memory and I/O devices of an I/O processing system. Specifically, data is written from memory to one or more I/O devices, and data is read from one or more I/O devices to memory by executing I/O operations.
To facilitate processing of I/O operations, an I/O subsystem of the I/O processing system is employed. The I/O subsystem is coupled to main memory and the I/O devices of the I/O processing system and directs the flow of information between memory and the I/O devices. One example of an I/O subsystem is a channel subsystem. The channel subsystem uses channel paths as communications media. Each channel path includes a channel coupled to a control unit, the control unit being further coupled to one or more I/O devices.
The operating system may employ channel command words (CCWs) by passing them to the channel subsystem in order to transfer data between the I/O devices and memory. A CCW specifies the command to be executed. For commands initiating certain I/O operations, the CCW designates the memory area associated with the operation, the action to be taken whenever a transfer to or from the area is completed, and other options.
During I/O processing, a list of CCWs is fetched from memory by a channel. The channel parses each command from the list of CCWs and forwards a number of the commands, each command in its own entity, to a control unit coupled to the channel. The control unit then processes the commands. The channel tracks the state of each command and controls when the next set of commands is to be sent to the control unit for processing. The channel ensures that each command is sent to the control unit in its own entity. Further, the channel obtains certain information associated with processing the response from the control unit for each command.
Depending on a link protocol used, an operating system may have difficulty making an informed decision regarding what action to take with an I/O operation that is taking a longer time than expected or allotted to complete. Accordingly, there is a need to provide the operating system with a way of determining the state of an I/O operation and determining an action to take for an I/O operation that is taking longer than the expected or allotted time to execute.